method_name = {'rdt','nmf',...
               'rs_rdt', 'rs_nmf', ...
               'fs_rdt', 'fs_nmf', ...
               'knn', 'sc' ,...
               'fs_nkk','5base'};

train_method = {@rdt_train, @nmf_train,...
                @(feat_train, score_train)rs_train(feat_train, score_train, @rdt_train), ...
                @(feat_train, score_train)rs_train(feat_train, score_train, @nmf_train), ...
                @(feat_train, score_train)fs_train(feat_train, score_train, @rdt_train,@rdt_predict), ...
                @(feat_train, score_train)fs_train(feat_train, score_train, @nmf_train,@nmf_predict), ...
                @knn_train,...
                @sc_train,...
                @(feat_train, score_train)fs_train(feat_train, score_train, @knn_train,@knn_predict),...
                @solid_train};

predict_method = {@rdt_predict, @nmf_predict,...
                @(model , feat_test)rs_predict(model , feat_test, @rdt_predict), ...
                @(model , feat_test)rs_predict(model , feat_test, @nmf_predict),...
                @(model , feat_test)fs_predict(model , feat_test, @rdt_predict), ...
                @(model , feat_test)fs_predict(model , feat_test, @nmf_predict),...
                @knn_predict,...
                @sc_predict,...
                @(model , feat_test)fs_predict(model , feat_test, @knn_predict),...
                @solid_predict};

feature_name = {'classifier_diff','HSV Single', 'HSV TopBottom' , 'HSV 2 by 2',...
               'HSV 3 by 3','HSV 1+3' ,'HoG Single', ...
               'HoG TopBottom' , 'HoG 2 by 2',...
               'HoG 3 by 3','HoG 1+3' };


short_name = feature_name;
short_name{1} = 'cd';
for i = 0:9, short_name{i+2} = ['g' num2str(i)]; end

score_name = {'F1','ZO'}; %score as recommendation system score